﻿#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
#include<vector>
using namespace std;
//namespace bit
//{
//	class string
//	{
//	public:
//		//构造
//		string(const char* str = "")
//		{
//			_size = strlen(str);
//			_capacity = _size;
//			_str = new char[_capacity + 1];
//			strcpy(_str, str);
//		}
//		//拷贝构造
//	/*	string(const string& s)
//		{
//			_str = new char[s._capacity + 1];
//			strcpy(_str, s._str);
//			_size = s._size;
//			_capacity = s._capacity;
//		}*/
//
//		//拷贝构造
//		void swap(string& s)
//		{
//			std::swap(_str, s._str);
//			std::swap(_size, s._size);
//			std::swap(_capacity, s._capacity);
//		}
//		string(const string& s)
//		{
//			string tmp(s._str);
//			swap(tmp);
//		}
//
//		string& operator=(const string& s)
//		{
//			if (this != &s)
//			{
//				string tmp(s._str);
//				swap(tmp);
//			}
//			return *this;
//		}
//
//	
//
//	private:
//		char* _str = nullptr;
//		size_t _size = 0;
//		size_t _capacity = 0;
//	};
//}
//
//void test()
//{
//	string s1("qwerty");
//	for (auto ch : s1)
//	{
//		cout << ch << " ";
//	}
//	cout << endl;
//
//	string::iterator it = s1.begin();
//	while(it != s1.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//	cout << endl;
//}
//
//int main()
//{
//	test();
//	return 0;
//}

////namespace bit
//{
//	class string
//	{
//	public:
//		//构造
//		string(const char* str = "")
//		{
//			_size = strlen(str);
//			_capacity = _size;
//			_str = new char[_capacity + 1];
//			strcpy(_str, str);
//		}
//		//拷贝构造
//		string(const string& s)
//		{
//			_str = new char[s._capacity];
//			_size = s._size;
//			_capacity = s._capacity;
//			strcpy(_str, s._str);
//		}
//		//拷贝构造
//		void swap(string& s)
//		{
//			std::swap(_str, s._str);
//			std::swap(_size, s._size);
//			std::swap(_capacity, s._capacity);
//		}
//		string(const string& s)
//		{
//			string tmp(s._str);
//			swap(tmp);
//		}
//		//赋值重载
//		string& operator=(const string& s)
//		{
//			if (this != &s)
//			{
//				string tmp(s._str);
//				swap(tmp);
//			}
//			return *this;
//		}
//	private:
//		char* _str = nullptr;
//		size_t _size = 0;
//		size_t _capacity = 0;
//	};
//}
//
//void test()
//{
//	string s1("hello");
//	for (auto ch : s1)
//	{
//		cout << ch << " ";
//	}
//	
//	string::iterator it = s1.begin();
//	while (it != s1.end())
//	{
//		cout << *it << " ";
//		++it;
//	}
//}
//
//﻿int main(int argc, char* argv[])
//
//{
//
//	string strText = "How are you?";
//
//	string strSeparator = " ";
//
//	string strResult;
//
//	int size_pos = 0;
//
//	int size_prev_pos = 0;
//
//	while ((size_pos = strText.find_first_of(strSeparator, size_pos)) != string::npos)
//
//	{
//
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//
//		cout << strResult << " ";
//
//		size_prev_pos = ++size_pos;
//
//	}
//
//	if (size_prev_pos != strText.size())
//
//	{
//
//		strResult = strText.substr(size_prev_pos, size_pos - size_prev_pos);
//
//		cout << strResult << " ";
//
//	}
//
//	cout << endl;
//
//	return 0;
//
//}

void test_vector1()
{
	vector<int> v1;
	vector<int> v2(10, 1);
	vector<int> v3(v2.begin(), v2.end());

	vector<int>::iterator it = v2.begin();
	while (it != v2.end())
	{
		cout << *it << " ";
		++it;
	}
	cout << endl;

	for (auto ch : v2)
	{
		cout << ch << " ";
	}
	cout << endl;

}


void test_vector2()
{
	vector<int> v1(10, 100);
	v1.push_back(2);

	v1.insert(v1.begin(), 3);
	for (auto ch : v1)
	{
		cout << ch << " ";
	}
	cout << endl;

	v1.insert(v1.begin() + 2, 5);
	for (auto e : v1)
	{
		cout << e << " ";
	}
	cout << endl;
}
int main()
{
	test_vector2();
	return 0;
}